<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //一.变量的解构赋值 - 快速的给变量赋值
    // 1.传统的赋值方式
    // let arr = [100, 200, 300, 400];
    // let a = arr[0];
    // let b = arr[1];
    // let c = arr[2];
    // let d = arr[3];
    // console.log(a, b, c, d);//100 200 300 400

    // 2.数组的解构赋值
    // let arr = [100, 200, 300, 400];
    // let [a, b, c, d] = arr;
    // console.log(a, b, c, d);

    // let [a, b, c, d] = [1000, 2000, 3000, 4000];
    // console.log(a, b, c, d);

    // 统一两边格式
    // let [a, b, [c, d, [e, f, [h, i]]]] = [1, 2, [3, 4, [5, 6, [7, 8]]]];
    // console.log(a, b, c, d, e, f, h, i);

    // 没有配置的输出undefined，定义了变量没有初始化
    // let [a, b, c, d] = [1, 2, 3];
    // console.log(a, b, c, d); //1 2 3 undefined

    // 多余的值直接删掉。
    // let [name, age, sex] = ['zhangsan', 100, '男', 'hello'];

    // 3.数组解构赋值的应用。
    // 3.1.交换两个值。
    // var a = 10;
    // var b = 5;
    // var [a, b] = [b, a];
    // console.log(a, b); //5 10

    // 3.2.函数输出多个结果。
    // 封装函数，输出数字数组里面的最大值，最小值，length属性。
    // var arr = [12, 3, 56, 78, 5, 999, 62];

    // function getValue(arr) {
    //     arr.sort(function(a, b) {
    //         return a - b;
    //     });
    //     return [arr[arr.length - 1], arr[0], arr.length];
    // }
    // let [maxvalue, minvalue, len] = getValue(arr);
    // console.log(maxvalue, minvalue, len);


    // 4.对象的解构赋值。
    // let obj = {
    //     name: 'zhangsan',
    //     age: 100,
    //     sex: '男'
    // };

    //变量名和属性名一致。
    // let {
    //     age,
    //     name,
    //     sex
    // } = obj;

    // console.log(name, age, sex);

    // let {
    //     c
    // } = {
    //     a: 1,
    //     b: 2,
    //     c: 3
    // };
    // console.log(c);//3

    //如果需要修改变量名，通过正常的赋值语法实现
    // let {
    //     a: d, //修改名称
    //     b,
    //     c
    // } = {
    //     a: 1,
    //     b: 2,
    //     c: 3
    // };
    // console.log(d); //1

    // let {
    //     name: xingming, //修改名称，得到值的是后者。
    //     age,
    //     sex
    // } = {
    //     name: 'zhangsan',
    //     age: 100,
    //     sex: '男'
    // }

    // console.log(xingming); //zhangsan
</script>